Prior to transmitting data on a physical transmission channel the data are typically subjected to channel encoding. For example, mobile terminals conforming to the 3GPP (3rd Generation Partnership Project) LTE (Long Term Evolution) mobile communication standard use either Turbo Coding or Convolutional Coding of rate ⅓ for nearly all physical channels.
In at least one of the downlink direction and the uplink direction of LTE systems, link adaptation will be possible on the physical channels and flexible coding rates will be applied. Therefore, in LTE systems rate matching will be introduced as a mandatory feature between the channel encoding and the actual transmission of the encoded data over the physical channel. The rate matching adapts the number of bits output from the channel encoder to the number of bits that can be transmitted on the physical channel. For example, channel encoded bits may be repeated or redundancy bits may be punctured to fit the capacity of the physical channel.
In LTE, the operations to be performed by the rate matching are prescribed, see e.g. the 3GPP Technical Specification (TS) 36.212. As specified in section 5.1.4 of the TS 36.212, rate matching basically comprises a sub-block interleaving for each of the systematic, parity 1 and parity 2 channel encoder output streams. A bit collection block multiplexes the output of the interleavers and collects the bits in a virtual circular buffer. Bit selection and pruning (i.e. the deletion of zero-bits, which have been inserted at an earlier stage to fill a code block up to a prescribed size or to fill a sub-block interleaver matrix, for example) is then performed on the virtual buffer. In other words, a cyclic read-out of the buffer or a puncturing of redundancy bits is performed in order to adapt the data rate to the capacity of the physical channel.
While the operations to be performed and the output of the rate matching are prescribed for LTE systems as outlined above, the implementation thereof is not. An efficient implementation has to take account of the fact that the rate matching introduces some latency in the data transmission process, which should be minimized. Further, any additional memory usage required for the rate matching should be minimized.